package cn.iocoder.yudao.module.promotion.controller.admin.yearcardconfig.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.util.*;
import java.math.BigDecimal;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;

@Schema(description = "管理后台 - 年卡配置 Response VO")
@Data
@ExcelIgnoreUnannotated
public class YearCardConfigRespVO {

    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "386")
    @ExcelProperty("主键")
    private Long id;

    @Schema(description = "标题", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("标题")
    private String title;

    @Schema(description = "头图", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("头图")
    private List<String> headerPicUrls;

    @Schema(description = "详情", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("详情")
    private String content;

    @Schema(description = "原价", requiredMode = Schema.RequiredMode.REQUIRED, example = "23784")
    @ExcelProperty("原价")
    private BigDecimal originalPrice;

    @Schema(description = "是否有促销", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("是否有促销")
    private Boolean havePromotion;

    @Schema(description = "促销价", example = "3326")
    @ExcelProperty("促销价")
    private BigDecimal promotionPrice;

    @Schema(description = "投放类型(1:总是显示;2:按日期)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @ExcelProperty("投放类型(1:总是显示;2:按日期)")
    private Integer putType;

    @Schema(description = "投放日期开始")
    @ExcelProperty("投放日期开始")
    private LocalDateTime putTimeStart;

    @Schema(description = "投放日期结束")
    @ExcelProperty("投放日期结束")
    private LocalDateTime putTimeEnd;

    @Schema(description = "用户协议")
    @ExcelProperty("用户协议")
    private String userAgreement;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;

}